package com.test23_正则表达式;

import org.junit.Test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * java.util.regex，正则工具包
 */
public class Demo04_Regex {

    /**
     * Pattern类，进行正则表达式的编译处理
     */
    @Test
    public void test1() {
        String str = "yootk.com22edu.yootk.com333yootk.ke.qq.com";
        String regex = "\\d+";
        Pattern pattern = Pattern.compile(regex);
        String[] result = pattern.split(str);   // 拆分字符串
        for (String temp : result) {
            System.out.println(temp);
        }
    }

    /**
     * Matcher类，进行正则匹配
     */
    @Test
    public void test2() {
        String str = "100.00";
        String regex = "\\d+(\\.\\d+)?";
        Pattern pattern = Pattern.compile(regex);   // 编译正则
        Matcher matcher = pattern.matcher(str);     // 创建正则匹配对象
        System.out.println(matcher.matches());      // 匹配结果
    }

    /**
     * 如果是简单的应用正则，那么使用String足够了。
     * 如果想进行更加繁琐的正则匹配处理，就必须使用Pattern、Matcher
     */
    @Test
    public void test3() {
        String sql = "INSERT INTO dept(deptno, dname, loc) VALUES (#{deptno}, #{dname}, #{loc})";
        String regex = "#\\{\\w+\\}";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(sql);
        while (matcher.find()) {
            String cname = matcher.group(0);
            System.out.println(cname.replaceAll("#|\\{|\\}", ""));
        }
    }
}
